{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## _*Variational Quantum Classifier*_\n",
    "\n",
    "The QSVM notebook demonstrates a kernel based approach. This notebook shows a variational method.\n",
    "\n",
    "For further information please see: [https://arxiv.org/pdf/1804.11326.pdf](https://arxiv.org/pdf/1804.11326.pdf)\n",
    "\n",
    "\n",
    "**This notebook shows the variational quantum classifier method.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.lines import Line2D\n",
    "\n",
    "from qiskit.circuit.library import ZZFeatureMap, TwoLocal\n",
    "from qiskit.primitives import StatevectorSampler\n",
    "\n",
    "from qiskit_machine_learning.datasets import ad_hoc_data\n",
    "from qiskit_algorithms.optimizers import SPSA"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we prepare the dataset, which is used for training, testing and the finally prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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xPu33367Fi9e3Pv+8OHD46pp5MiROv3006MeV5LeeustZWVlqaioSFJ4U2RPADBTZ2entm3bpqKiIl144YWSwssuLpdLzz33nLKzs3vHbtiwIerz+1uG2bp1q5YuXaqf/exnvde6urr0ySefmPsXADIMwQKwgc8++0xPPfWUFixYoO9+97tRHy8sLNS///u/q7a2VgsXLtRf/MVf6L777lNDQ0PvPosPPvgg6miq1+uV1+sddF1Op1PXXHONnnnmGb333nsaN26cJOno0aPavHmzLr30UrndbknSd77zHf3DP/yDtm3bFrXPwjCMQe2z+Oyzz/RXf/VXam9v15o1a3ofw+l0yuFwROw7ee+99/pshHXGGWf0GRacTmfUzMwDDzwQ8ZgA4kewAGygtrZWHR0dqqys7PPjl1xySW+zrIULF+r222/XE088ofLycq1cubL3uGlxcbH+9Kc/mVrbT3/6U+3YsUOXXnqpbr31Vg0ZMkQPP/ywuru79c///M+94/7+7/9eW7du1YIFC3TTTTdpypQpam9vV21trR566CFNnDhxwOc5fPiwNm7cKCk8S9Hc3Kzf/va3am1t1d/93d/pb/7mb3rHzps3T/fee6/Ky8v1/e9/X21tbXrwwQd13nnnRf39p0yZoueff1733nuvCgsLVVJSomnTpukv//Iv9cQTT8jj8cjr9Wr37t16/vnne4/ZAhgki0+lADAMo6KiwnC5XMaxY8f6HXPDDTcYp512mvHhhx8ahmEYf/rTn4zLL7/ccLlcxpgxY4x//Md/NB555JG4jpsuX7486npxcXHU8czGxkbj2muvNXJycozTTz/dmD17trFr166oz/3oo4+MFStWGGPGjDGGDh1qjB071li6dGlvzf0pLi42JBmSDIfDYbjdbuOiiy4ybrnllogjtcd75JFHjPPPP9/Izs42xo8fb2zYsMGoqqoyTvyx9tZbbxmXXXaZMWzYMENS79/t448/Nm688UbjrLPOMnJycoxrr73WeOutt/r8+wOIncMwbLZLCwAApCyOmwIAANMQLAAAgGkIFgAAwDQECwAAYBqCBQAAMA3BAgAAmCbpDbJCoZCOHDmi3NzcU77jIQAASA7DMNTR0aHCwkJlZfU/L5H0YHHkyJHeewsAAIDUcujQIY0dO7bfjyc9WPTc9vjQoUO99xgAAAD2FggEVFRU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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "feature_dim = 2 # dimension of each data point\n",
    "training_dataset_size = 20\n",
    "testing_dataset_size = 10\n",
    "random_seed = 10598\n",
    "shots = 1024\n",
    "\n",
    "train_data, train_labels, test_data, test_labels = ad_hoc_data(\n",
    "    training_size=training_dataset_size,\n",
    "    test_size=testing_dataset_size,\n",
    "    n=feature_dim,\n",
    "    gap=0.3,\n",
    "    plot_data=True,\n",
    "    one_hot=False\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The quantum circuit is made of:\n",
    "- an encoder (here the ZZFeatureMap is used); x[0] and x[1] are the features of the data point\n",
    "- a variational form (TwoLocal, probably the simplest there is); the parameters are those learned by the optimizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAAAAMotAEAAAAAAAAAAAAGUGgDAAAAAAAAAAAADKDQBgAAAAAAAAAAABhAoQ0AAAAAAAAAAAAwgEIbAAAAAAAAAAAAYACFNgAAAAAAAAAAAMAACm0AAAAAAAAAAACAARTaAAAAAAAAAAAA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Pz9bt25NXV1dtmzZkrFjx2br1q2pra3N97///cyfPz9vvfVW6urqsnnz5px77rmpr6/PnXfeedC9WlpaMnXq1KxatSqTJ0/Oxo0b88Ybb2Tt2rXZvn17amtr8+abb+arX/1qm3ncdttt2bBhQ3bs2JF169alrq4ub7/9dh577LGUl5fnuuuuS2NjY+v1+/bty6233prkg+C2bdu2vPTSS1m/fn127tyZZcuW5bLLLvtof7zDOHA124Rx53YqsiUfhNArJland6+eGTbk5Pzj+X/3UUwTAAAAAADgmDnuVrRdf/31+fnPf37QuUWLFmXixIntnn/qqacyadKkfO5zn8uaNWtajy9cuDCTJ0/OWWedlZUrV6a8vPygcfv37895552Xurq6PPvssxk3blyH5vrDH/4ws2bNysMPP5yrr746SVJfX5+qqqoMHDgw77zzTue+fDsOXNH2r3felx49y48won179u7Nnr3vp7S0NH169yp8n/f37UtZaWlKS4+7xgsAAAAAAHwC9e3TK9dP+3KhscfdBlnXXXddm2Njxozp0PnXX3/9oOO//vWvkyTTpk1rE9mSpKysLF/60pdSV1eXpUuXtgltGzZsyCOPPJI1a9Zkx44def/995Mkb7/9dpJk9erVraHtpJNOSnl5eRoaGrJ48eJccsklHf7OHbGzaVd6vL//r75Pc3NzdjY2HYUZAQAAAAAAfLIdd6Ft+PDhbY4duO/aoc4PHjw4SQ56lWOSrF27NknywAMP5PHHHz/k87Zt25Yk2bp160HH77zzznzve9/Lvn372p3rjh07Wv9dVlaWG264IT/5yU9y6aWXZsyYMZkwYULGjx+f6urq9OvXr937dES/it6FV7QdrdVsAAAAAAAAHzd9+xRvH8ddaKuoqGhz7MD9xI50/kANDQ1JkvXr1x/xubt27Wr994oVK/Ld7343ZWVlmTVrVmpqanLaaaeloqIiJSUluf/++3Pttde2rnD70OzZszN06ND88pe/TF1dXerq6jJnzpz07NkzX/nKV3LHHXfkhBNOOOJcDmXm9KsP+d2PpGn3e5lz98NJkn+pmZDRI08r9HwAAAAAAIDjzXEX2o6mD/c3W7BgQS6//PIOj3vwwQeTJDfddFN+8IMftDl/4Eq2A5WWlmbGjBmZMWNGtmzZkuXLl2fx4sV59NFH88ADD2Tz5s1ZvHhxh+fRu3fvNDY25t8feiL/9sBv2g2Kh3PgarYnFq/IE4tXdPoeAAAAAAAAH1f2aPuIjB49OqtXr866des6Fdo2bdqUJBk/fvwhzz///PNHvMfQoUNzzTXX5JprrslNN92Us88+O7///e+zadOmnH766R2aR0lJSSoqKrL3/Za827TryAMOw95sAAAAAAAABxPaDmPKlCl56KGHcu+99+b6669vXeF2JL16ffAuz/r6+jbnNmzYkCeffLJT8xg9enT69++fhoaGvPXWWx0ObR8q+m5Re7MBAAAAAADHO3u0fURqampSXV2dZcuW5dJLL829996bs846q/V8c3NzXnjhhcyfPz8333xzzjjjjCTJRRddlCeeeCI//vGP84UvfCHDhw9PkvzpT3/KFVdckdLS0jbPWr9+fX7605/m2muvzfnnn9/6msf9+/fnF7/4RRoaGlJeXp7Ro0d3+nsUWe5obzYAAAAAAIDDK2lpaWnp6kkcDR+Gqfa+TtHz27dvT01NTZ577rkkybBhw1JZWZndu3dn48aNaWr64HWKL7/8cs4888wkybvvvpsxY8bktddeS/fu3TNq1Kg0Nzfn5ZdfTlVVVb75zW/m1ltvzbRp0zJv3rwkyerVq3POOeckSfr27Zvhw4enrKwsb7zxRuuebnPnzs03vvGNQr9PZ/3umZVZ8odVqRo8KN/+2pcL7e8GAAAAAABwPGu7tIqDnHjiiVm2bFnmzZuXSy65JE1NTXnxxRezadOmjBgxIjfccEOWLVuWkSNHto7p27dvnn322dTW1mbgwIF55ZVX0tjYmOnTp6euri5Dhgxp85yRI0fmvvvuy9SpU1NVVZXXX389a9asSXl5ea688sosX778mEW2pt3v5bmX1iVJJow7V2QDAAAAAAA4hONmRRtHz46GnXn8d8vTuOs9q9kAAAAAAADaIbTRrvf27E15zx5dPQ0AAAAAAICPJaENAAAAAAAACrBHGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAUILQBAAAAAABAAUIbAAAAAAAAFCC0AQAAAAAAQAFCGwAAAAAAABQgtAEAAAAAAEABQhsAAAAAAAAU8P+ghnkhA3/XFQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 2252.61x618.722 with 1 Axes>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature_map = ZZFeatureMap(feature_dimension=2, reps=2)\n",
    "feature_map.barrier()\n",
    "var_form = TwoLocal(2, ['ry', 'rz'], 'cz', reps=2)\n",
    "\n",
    "ad_hoc_circuit = feature_map.compose(var_form)\n",
    "ad_hoc_circuit.measure_all()\n",
    "ad_hoc_circuit.decompose().draw(output=\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def circuit_instance(data, variational):\n",
    "    \"\"\"Assigns parameter values to `AD_HOC_CIRCUIT`.\n",
    "    Args:\n",
    "        data (list): Data values for the feature map\n",
    "        variational (list): Parameter values for `VAR_FORM`\n",
    "    Returns:\n",
    "        QuantumCircuit: `AD_HOC_CIRCUIT` with parameters assigned\n",
    "    \"\"\"\n",
    "    parameters = {}\n",
    "    for i, p in enumerate(feature_map.ordered_parameters):\n",
    "        parameters[p] = data[i]\n",
    "    for i, p in enumerate(var_form.ordered_parameters):\n",
    "        parameters[p] = variational[i]\n",
    "    return ad_hoc_circuit.assign_parameters(parameters)\n",
    "\n",
    "\n",
    "def parity(bitstring):\n",
    "    \"\"\"Returns 1 if parity of `bitstring` is even, otherwise 0.\"\"\"\n",
    "    hamming_weight = sum(int(k) for k in list(bitstring))\n",
    "    return (hamming_weight+1) % 2\n",
    "\n",
    "\n",
    "def label_probability(results):\n",
    "    \"\"\"Converts a dict of bitstrings and their counts,\n",
    "    to parities and their counts\"\"\"\n",
    "    shots = sum(results.values())\n",
    "    probabilities = {0: 0, 1: 0}\n",
    "    for bitstring, counts in results.items():\n",
    "        label = parity(bitstring)\n",
    "        probabilities[label] += counts / shots\n",
    "    return probabilities\n",
    "\n",
    "\n",
    "def classification_probability(data, variational):\n",
    "    \"\"\"Classify data points using given parameters.\n",
    "    Args:\n",
    "        data (list): Set of data points to classify\n",
    "        variational (list): Parameters for `VAR_FORM`\n",
    "    Returns:\n",
    "        list[dict]: Probability of circuit classifying\n",
    "                    each data point as 0 or 1.\n",
    "    \"\"\"\n",
    "    circuits = [circuit_instance(d, variational) for d in data]\n",
    "    sampler = StatevectorSampler()\n",
    "    results = sampler.run(circuits).result()\n",
    "    classification = [\n",
    "        label_probability(results[i].data.meas.get_counts()) for i, c in enumerate(circuits)]\n",
    "    return classification\n",
    "\n",
    "\n",
    "def cross_entropy_loss(classification, expected):\n",
    "    \"\"\"Calculate accuracy of predictions using cross entropy loss.\n",
    "    Args:\n",
    "        classification (dict): Dict where keys are possible classes,\n",
    "                               and values are the probability our\n",
    "                               circuit chooses that class.\n",
    "        expected (int): Correct classification of the data point.\n",
    "\n",
    "    Returns:\n",
    "        float: Cross entropy loss\n",
    "    \"\"\"\n",
    "    p = classification.get(expected)  # Prob. of correct classification\n",
    "    return -np.log(p + 1e-10)\n",
    "\n",
    "\n",
    "def cost_function(data, labels, variational):\n",
    "    \"\"\"Evaluates performance of our circuit with `variational`\n",
    "    parameters on `data`.\n",
    "\n",
    "    Args:\n",
    "        data (list): List of data points to classify\n",
    "        labels (list): List of correct labels for each data point\n",
    "        variational (list): Parameters to use in circuit\n",
    "\n",
    "    Returns:\n",
    "        float: Cost (metric of performance)\n",
    "    \"\"\"\n",
    "    classifications = classification_probability(data, variational)\n",
    "    cost = 0\n",
    "    for i, classification in enumerate(classifications):\n",
    "        cost += cross_entropy_loss(classification, labels[i])\n",
    "    cost /= len(data)\n",
    "    return cost\n",
    "\n",
    "\n",
    "def objective_function(variational):\n",
    "    \"\"\"Cost function of circuit parameters on training data.\n",
    "    The optimizer will attempt to minimize this.\"\"\"\n",
    "    return cost_function(train_data, train_labels, variational)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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wYTp4AAA+Ee7poI/9NBDevPNN9W/f3/dcccdGjBggCRp27ZtWrBggVwulx588EGfFNrZfXd3cAAA4DvtCjfJyclauXKlbr/9ds2aNUuGYUiSLBaLJk6cqAULFig5OdknhXZ2zT03BeU1qmt0yRFiM7kiAACCU7sX8cvIyND777+vo0ePateuXTIMQ/369VN8fLwv6gsa3SLtirTbVFXv0sGjNerTPcrskgAACEodWqFYkuLj4zVmzBhv1hLULBaLenWL1NZCp745UkW4AQDARzq0txQ6JoO1bgAA8DnCjR+daMbUnpJKvbr2gA4w0BgAAK/o8GUptF8vT7ip0mc7SvTiF3u1bHvTooc2q0WXD0vT7Rf0Uf/kaDPLBACgUyPc+FHGsd3BP91eok+PhRqLReqfFK3txRVavD5fi9fnK2dgsn6e00+De8SaWS4AAJ0S4caP+iRFymKRDKNpM81rRvfU9OxMZSZGauPBMj27bLeWbCnSx1uLtWJnidbPvkgRdv6JAABoD745/Sg1NlxPXzdC5TUNumJ4mqLDvt2na2jPOD37P6O061ClLn16heoa3SqpqFNGN/6JAABoD745/WzKsLRW7++bFKWESLsKy2tVXtPgp6oAAAgezJYKQLHhTT06ZdWEGwAA2sv0cLNgwQJlZmYqLCxM48aN05o1a1o9v6ysTDNmzFBqaqocDof69++v999/30/V+kfMsXBDzw0AAO1n6mWpRYsWaebMmXruuec0btw4zZ8/XxMnTtT27duVlJR03Pn19fW66KKLlJSUpNdff109evTQN998o7i4OP8X70OxhBsAADrM1HDz1FNP6ZZbbtFNN90kSXruuef03nvv6cUXX9T9999/3PkvvviiSktLtXLlSoWGNgWAzMzMVl+jrq5OdXV1np+dTqf33oCPEG4AAOg40y5L1dfXKzc3Vzk5Od8WY7UqJydHq1atOuFj3nnnHWVnZ2vGjBlKTk7W4MGD9dhjj8nlcp30debNm6fY2FjPLT093evvxduaw42TcAMAQLuZFm4OHz4sl8ul5OTkFseTk5NVVFR0wsfs2bNHr7/+ulwul95//309/PDDevLJJ/Xoo4+e9HVmzZql8vJyz+3AgQNefR++QM8NAAAd16mmgrvdbiUlJen555+XzWbTqFGjlJ+fryeeeEJz5sw54WMcDoccDoefKz09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mppq2O12o0ePHsbUqVONXbt2ee6vqakxfvaznxnx8fFGRESE8f3vf98oLCw0sWL/+vTTTw1Jx92mT59uGEbTdPCHH37YSE5ONhwOhzFhwgRj+/btLZ7jyJEjxvXXX29ERUUZMTExxk033WRUVFSY8G58r7X2qq6uNi6++GKje/fuRmhoqJGRkWHccsstx/0PRldqrxO1lSTj73//u+ectvwO7tu3z5g8ebIRHh5uJCYmGvfee6/R0NDg53fje6dqr/379xvnnXeekZCQYDgcDqNv377GL3/5S6O8vLzF83SV9rr55puNjIwMw263G927dzcmTJjgCTaGEXifLYthGIb3+4MAAADMwZgbAAAQVAg3AAAgqBBuAABAUCHcAACAoEK4AQAAQYVwAwAAggrhBgAABBXCDQAACCqEGwAAEFQINwACRklJiW6//Xb16tVLDodDKSkpmjhxor744gtJksVi0VtvvWVukQACXojZBQBAs6uvvlr19fV66aWX1Lt3bxUXF2vp0qU6cuSI2aUB6ETouQEQEMrKyrRixQr97ne/04UXXqiMjAyNHTtWs2bN0uWXX67MzExJ0ve//31ZLBbPz5L09ttva+TIkQoLC1Pv3r01d+5cNTY2eu63WCx69tlnNXnyZIWHh6t37956/fXXPffX19frjjvuUGpqqsLCwpSRkaF58+b5660D8DLCDYCAEBUVpaioKL311luqq6s77v6vvvpKkvT3v/9dhYWFnp9XrFihadOm6e6779bXX3+tv/zlL1q4cKF++9vftnj8ww8/rKuvvlobNmzQDTfcoOuuu05bt26VJD399NN655139Oqrr2r79u16+eWXW4QnAJ0Lu4IDCBhvvPGGbrnlFtXU1GjkyJE6//zzdd1112no0KGSmnpgFi9erCuvvNLzmJycHE2YMEGzZs3yHPt//+//6b777lNBQYHncbfddpueffZZzzlnnXWWRo4cqWeeeUZ33XWXtmzZoo8//lgWi8U/bxaAz9BzAyBgXH311SooKNA777yjSZMmadmyZRo5cqQWLlx40sds2LBBjzzyiKfnJyoqSrfccosKCwtVXV3tOS87O7vF47Kzsz09NzfeeKPy8vI0YMAA3XXXXfrwww998v4A+AfhBkBACQsL00UXXaSHH35YK1eu1I033qg5c+ac9PzKykrNnTtXeXl5ntumTZu0c+dOhYWFtek1R44cqb179+o3v/mNampqdO211+oHP/iBt94SAD8j3AAIaIMGDVJVVZUkKTQ0VC6Xq8X9I0eO1Pbt29W3b9/jblbrt/+J+/LLL1s87ssvv9TAgQM9P8fExGjq1Kn661//qkWLFumNN95QaWmpD98ZAF9hKjiAgHDkyBFdc801uvnmmzV06FBFR0dr7dq1+v3vf68rrrhCkpSZmamlS5dq/Pjxcjgcio+P1+zZs3XZZZepV69e+sEPfiCr1aoNGzZo8+bNevTRRz3P/9prr2n06NE655xz9PLLL2vNmjV64YUXJElPPfWUUlNTNWLECFmtVr322mtKSUlRXFycGU0B4HQZABAAamtrjfvvv98YOXKkERsba0RERBgDBgwwHnroIaO6utowDMN45513jL59+xohISFGRkaG57FLliwxzj77bCM8PNyIiYkxxo4dazz//POe+yUZCxYsMC666CLD4XAYmZmZxqJFizz3P//888bw4cONyMhIIyYmxpgwYYKxbt06v713AN7FbCkAQe9Es6wABC/G3AAAgKBCuAEAAEGFAcUAgh5X34GuhZ4bAAAQVAg3AAAgqBBuAABAUCHcAACAoEK4AQAAQYVwAwAAggrhBgAABBXCDQAACCr/H+weop58ewa6AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class OptimizerLog:\n",
    "    \"\"\"Log to store optimizer's intermediate results\"\"\"\n",
    "    def __init__(self):\n",
    "        self.evaluations = []\n",
    "        self.parameters = []\n",
    "        self.costs = []\n",
    "    def update(self, evaluation, parameter, cost, _stepsize, _accept):\n",
    "        \"\"\"Save intermediate results. Optimizer passes five values\n",
    "        but we ignore the last two.\"\"\"\n",
    "        self.evaluations.append(evaluation)\n",
    "        self.parameters.append(parameter)\n",
    "        self.costs.append(cost)\n",
    "\n",
    "# Set up the optimization\n",
    "\n",
    "log = OptimizerLog()\n",
    "optimizer = SPSA(maxiter=100, callback=log.update)\n",
    "\n",
    "initial_point = np.zeros((var_form.num_parameters))\n",
    "\n",
    "# Run the optimization\n",
    "result = optimizer.minimize(objective_function, initial_point)\n",
    "\n",
    "opt_var = result.x\n",
    "opt_value = result.fun\n",
    "\n",
    "fig = plt.figure()\n",
    "plt.plot(log.evaluations, log.costs)\n",
    "plt.xlabel('Steps')\n",
    "plt.ylabel('Cost')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def test_classifier(data, labels, variational):\n",
    "    \"\"\"Gets classifier's most likely predictions and accuracy of those\n",
    "    predictions.\n",
    "\n",
    "    Args:\n",
    "        data (list): List of data points to classify\n",
    "        labels (list): List of correct labels for each data point\n",
    "        variational (list): List of parameter values for classifier\n",
    "\n",
    "    Returns:\n",
    "        float: Average accuracy of classifier over `data`\n",
    "        list: Classifier's label predictions for each data point\n",
    "    \"\"\"\n",
    "    probability = classification_probability(data, variational)\n",
    "    predictions = [0 if p[0] >= p[1] else 1 for p in probability]\n",
    "    accuracy = 0\n",
    "\n",
    "    for i, prediction in enumerate(predictions):\n",
    "        if prediction == labels[i]:\n",
    "            accuracy += 1\n",
    "    accuracy /= len(labels)\n",
    "    return accuracy, predictions\n",
    "\n",
    "accuracy, predictions = test_classifier(test_data, test_labels, opt_var)\n",
    "accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAIjCAYAAAAOQTaHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBq0lEQVR4nO3deXxU1f3/8fdNMhlmskwSCAJlSZRFKbIYBIVqUGjFqnXhq8gPBNKqSF1L7UK/rWu/xVYrVmtBrSYoCqiIWuuKClZQ0FCoFcuiCUhFWRISkhmTSXJ/f9wkEggkmSV3ltfz8ZgHzL3nTD5kws39zDnncwzTNE0BAAAAAGCzBLsDAAAAAABAIkEFAAAAAEQIElQAAAAAQEQgQQUAAAAARAQSVAAAAABARCBBBQAAAABEBBJUAAAAAEBEIEEFAAAAAEQEElQAAAAAQEQgQQWAEJk5c6ZycnIC6nvbbbfJMIzQBgQAABBlSFABxDzDMNr1WLVqld2h2qahoUH33HOPBgwYIJfLpRNOOEGzZ89WVVVVm31LS0vb/T0uLS0NOtYvvvhCt912mzZu3Niu9kVFRS1i6NKli3r16qVzzjlH999/vw4ePBhwLGvXrtVtt92mAwcOBPwaAADgG4ZpmqbdQQBAOC1evLjF88cff1xvvPGGnnjiiRbHv/vd7+q4444L+Ov4/X41NDTI6XR2uG9dXZ3q6urUpUuXgL9+MObPn685c+booosu0rnnnqsdO3ZoyZIleuutt9ocFa6urtaKFStaHPvjH/+oXbt2af78+S2OX3zxxUpJSQkq1g8//FCnnnqqCgsLNXPmzDbbFxUVqaCgQHfccYdyc3Pl9/v15ZdfatWqVXrjjTfUt29fvfjiixo6dGiHY7nnnnv0s5/9TCUlJQGPngMAgG8k2R0AAITbtGnTWjx///339cYbbxxx/HBer1dut7vdX8fhcAQUnyQlJSUpKcm+S/LSpUv17W9/W88991zzVOM777xTDQ0NbfZNSUk54nu5dOlSlZeXt/k97kznnnuuRo4c2fx87ty5euutt3T++efrBz/4gT755BO5XC4bIwQAAEzxBQBJ48aN05AhQ1RcXKwzzzxTbrdbv/rVryRJL7zwgs477zz16tVLTqdTJ5xwgu68807V19e3eI3D16A2TX2955579PDDD+uEE06Q0+nUqaeeqg8++KBF39bWoBqGoeuuu07PP/+8hgwZIqfTqW9/+9t69dVXj4h/1apVGjlypLp06aITTjhBDz30UIfWtSYkJKihoaFF+4SEhJAmzTU1Nbr11lvVv39/OZ1O9enTRz//+c9VU1PTot0bb7yh73znO8rIyFBqaqoGDRrU/F6sWrVKp556qiSpoKCgedpuUVFRQDGdffbZ+s1vfqMdO3a0GGn/17/+pZkzZ+r4449Xly5d1KNHD/3whz/U/v37m9vcdttt+tnPfiZJys3NPWIac2Fhoc4++2x1795dTqdTgwcP1oIFCwKKEwCAeMEIKgA02r9/v84991xdfvnlmjZtWvN036KiIqWmpmrOnDlKTU3VW2+9pVtuuUWVlZW6++6723zdp556SgcPHtSsWbNkGIb+8Ic/6JJLLtFnn33W5qjru+++q+eee04//vGPlZaWpvvvv1+TJk3Szp071bVrV0nSP//5T02cOFE9e/bU7bffrvr6et1xxx3Kzs5u97+9oKBAs2bN0kMPPaRZs2a1u197NTQ06Ac/+IHeffddXX311TrppJP00Ucfaf78+dq6dauef/55SdLHH3+s888/X0OHDtUdd9whp9Op7du3a82aNZKkk046SXfccYduueUWXX311TrjjDMkSWPGjAk4tiuuuEK/+tWv9Prrr+uqq66SZCXJn332mQoKCtSjRw99/PHHevjhh/Xxxx/r/fffl2EYuuSSS7R161YtWbJE8+fPV7du3SSp+fu+YMECffvb39YPfvADJSUl6W9/+5t+/OMfq6GhQddee23A8QIAENNMAIgz1157rXn45S8/P9+UZC5cuPCI9l6v94hjs2bNMt1ut/n11183H5sxY4bZr1+/5uclJSWmJLNr165mWVlZ8/EXXnjBlGT+7W9/az526623HhGTJDM5Odncvn1787FNmzaZkswHHnig+dgFF1xgut1u87///W/zsW3btplJSUlHvObR/PKXvzSTk5PNxMRE87nnnmtXn2M577zzWnwvnnjiCTMhIcH8xz/+0aLdwoULTUnmmjVrTNM0zfnz55uSzL179x71tT/44ANTkllYWNiuWAoLC01J5gcffHDUNh6PxxwxYkTz89be8yVLlpiSzHfeeaf52N13321KMktKSo5o39prnHPOOebxxx/frrgBAIhHTPEFgEZOp1MFBQVHHD90XeLBgwe1b98+nXHGGfJ6vfrPf/7T5utOnjxZmZmZzc+bRv0+++yzNvtOmDBBJ5xwQvPzoUOHKj09vblvfX29Vq5cqYsuuki9evVqbte/f3+de+65bb6+JN1///269957tWbNGk2ZMkWXX365Xn/99RZtnE6nfvOb37Tr9VrzzDPP6KSTTtKJJ56offv2NT/OPvtsSdLbb78tScrIyJBkTatuz/rXUElNTW1RzffQ9/zrr7/Wvn37dNppp0mSNmzY0K7XPPQ1KioqtG/fPuXn5+uzzz5TRUVFiCIHACC2kKACQKNvfetbSk5OPuL4xx9/rIsvvlgej0fp6enKzs5uLv7TnkSjb9++LZ43Javl5eUd7tvUv6nvnj175PP51L9//yPatXbscD6fT7feequuvPJKjRw5snnd5MUXX6x3331XkrRt2zbV1tZq9OjRbb7e0Wzbtk0ff/yxsrOzWzwGDhzY/O+QrGR+7NixuvLKK3Xcccfp8ssv19NPPx32ZLWqqkppaWnNz8vKynTjjTfquOOOk8vlUnZ2tnJzcyW17z2XpDVr1mjChAlKSUlRRkaGsrOzm9fSkqACANA61qACQKPWKrgeOHBA+fn5Sk9P1x133KETTjhBXbp00YYNG/SLX/yiXYlTYmJiq8fNduzyFUzf9vjkk0904MCB5tHBpKQkPfvsszr77LN13nnn6e2339aSJUvUvXt3ffe73w346zQ0NOjkk0/Wvffe2+r5Pn36SLLeg3feeUdvv/22/v73v+vVV1/VsmXLdPbZZ+v1118/6vcjGLt27VJFRUWLhP6yyy7T2rVr9bOf/UzDhw9XamqqGhoaNHHixHa9559++qnGjx+vE088Uffee6/69Omj5ORkvfzyy5o/f36njg4DABBNSFAB4BhWrVql/fv367nnntOZZ57ZfLykpMTGqL7RvXt3denSRdu3bz/iXGvHDtdUtffzzz9vPpaSkqKXX35Z3/nOd3TOOefo66+/1m9/+9uA9ndtcsIJJ2jTpk0aP358m5WFExISNH78eI0fP1733nuvfve73+l///d/9fbbb2vChAntrkzcXk374Z5zzjmSrJHtN998U7fffrtuueWW5nbbtm07ou/RYvnb3/6mmpoavfjiiy1GwZumMgMAgNYxxRcAjqFpxO7QEcva2lr95S9/sSukFhITEzVhwgQ9//zz+uKLL5qPb9++Xa+88kqb/U8++WQdd9xx+vOf/9w8zVaSunbtqsLCQu3bt08+n08XXHBBUHFedtll+u9//6tHHnnkiHM+n0/V1dWSrKm1hxs+fLgkNW9Hk5KSIska3Q7WW2+9pTvvvFO5ubmaOnWqpNbfc0m67777juh/tFhae42KigoVFhYGHTMAALGMEVQAOIYxY8YoMzNTM2bM0A033CDDMPTEE0+EbIptKNx22216/fXXNXbsWM2ePVv19fX685//rCFDhmjjxo3H7JuUlKQ///nPmjx5sk4++WTNmjVL/fr10yeffKLHHntMJ598snbt2qULL7xQa9asUXp6ekAxXnHFFXr66ad1zTXX6O2339bYsWNVX1+v//znP3r66af12muvaeTIkbrjjjv0zjvv6LzzzlO/fv20Z88e/eUvf1Hv3r31ne98R5I1GpuRkaGFCxcqLS1NKSkpGj16dPMa0aN55ZVX9J///Ed1dXX66quv9NZbb+mNN95Qv3799OKLL6pLly6SpPT0dJ155pn6wx/+IL/fr29961t6/fXXWx01z8vLkyT97//+ry6//HI5HA5dcMEF+t73vqfk5GRdcMEFmjVrlqqqqvTII4+oe/fu2r17d0DfQwAA4gEJKgAcQ9euXfXSSy/ppz/9qX79618rMzNT06ZN0/jx45unhNotLy9Pr7zyim6++Wb95je/UZ8+fXTHHXfok08+aVeV4f/5n//RqlWr9H//93/605/+pJqaGg0YMEA///nPdeONN2r16tU677zzdOmll+rvf/+7kpI6/qsjISFBzz//vObPn6/HH39cK1askNvt1vHHH68bb7yxuVjSD37wA5WWluqxxx7Tvn371K1bN+Xn5+v222+Xx+ORJDkcDi1atEhz587VNddco7q6OhUWFraZoDZN101OTlZWVpZOPvlk3XfffSooKGhRIEmy9q69/vrr9eCDD8o0TX3ve9/TK6+80qJSsiSdeuqpuvPOO7Vw4UK9+uqramhoUElJiQYNGqRnn31Wv/71r3XzzTerR48emj17trKzs/XDH/6ww98/AADihWFG0jAAACBkLrroIn388cetrp0EAACIRKxBBYAY4PP5Wjzftm2bXn75ZY0bN86egAAAAALACCoAxICePXtq5syZOv7447Vjxw4tWLBANTU1+uc//6kBAwbYHR4AAEC7sAYV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vlJSUkLxLYs7JKgA4sbqrXtVULhepqTWJvM2HfP561VQuF6FBaNIUgEACKE+ffpo/vz5MgxDgwYN0kcffaT58+e3SFDPPvts/fSnP21+fuWVV2rq1KnNxY4GDBig+++/X/n5+VqwYIF27typV155RevXr9epp54qSXr00Ud10kknHTWOp556Snv37tUHH3ygrCxrT+L+/fs3n09NTVVSUpJ69OjR5r/p0Ucf1eWXX67ExEQNGTJExx9/vJ555hnNnDmzI98aNGKKL4C4UOHza/biYis5bWOpqWlayersxcVM9wUAIIROO+00GYbR/Pz000/Xtm3bVF//zcymkSNHtuizadMmFRUVKTU1tflxzjnnqKGhQSUlJfrkk0+UlJSkvLy85j4nnniiMjIyjhrHxo0bNWLEiObkNFAHDhzQc889p2nTpjUfmzZtGtN8g8AIKoC4sLx4l3y19a2OnLbGNCVfbb2e27BLBWNzwxobAAD4xuFTY6uqqjRr1izdcMMNR7Tt27evtm7twN6ujVwuV8DxHeqpp57S119/rdGjRzcfM01TDQ0N2rp1qwYOHBiSrxNPGEEFEPNM09SitaUB9S1aU0p1XwAAQuTwCrfvv/++BgwYoMTExKP2OeWUU7R582b179//iEdycrJOPPFE1dXVqbi4uLnPli1bdODAgaO+5tChQ7Vx40aVlZW1ej45ObnFqO7RPProo/rpT3+qjRs3Nj82bdqkM844Q4899lib/XEkElQAMa/c69eOMm+7R0+bmJJ2lHl1wMs0XwAAQmHnzp2aM2eOtmzZoiVLluiBBx7QjTfeeMw+v/jFL7R27Vpdd9112rhxo7Zt26YXXnhB1113nSRp0KBBmjhxombNmqV169apuLhYV1555TFHSadMmaIePXrooosu0po1a/TZZ59p+fLleu+99yRZ1YRLSkq0ceNG7du3TzU1NUe8xsaNG7VhwwZdeeWVGjJkSIvHlClTtGjRItXV1QXx3YpPJKgAYl51TXC/HKqC7A8AACzTp0+Xz+fTqFGjdO211+rGG29s3krmaIYOHarVq1dr69atOuOMMzRixAjdcsst6tWrV3ObwsJC9erVS/n5+brkkkt09dVXq3v37kd9zeTkZL3++uvq3r27vv/97+vkk0/WXXfd1TySO2nSJE2cOFFnnXWWsrOztWTJkiNe49FHH9Xg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an3gsHv3bp177rl2hdiC7VN8v/3tb2vlypXNz5OSbA8JsYo1ckHLcAc3LTEzyP4AAKBtpmnq4Mo3JVnVej2XXBzU63kuvlh77vuTTK9XB99YqR633NLp6+fr6+tlGIYSEpgA2lHZ2S0rxH/66afKy8vTgAEDmo/16NGjs8M6Ktvf4aSkJPXo0aP50a1bN7tDQqxrWiOX2c/6k+S03YKtTllFdUsAAMKu7quvVL9vnyTJPXx4q9V6OyIxLU3u4cMkWfuk1u3Z0+HXeOmll5SRkaH6emvLrY0bN8owDP3yl79sbnPllVdq2rRpkqSioiJlZGToxRdf1ODBg+V0OrVz506Vl5dr+vTpyszMlNvt1rnnnqtt27Y1v0ZTv9dee00nnXSSUlNTNXHiRO3evbu5TV1dnW644QZlZGSoa9eu+sUvfqEZM2YcdXrqHXfcoSFDhhxxfPjw4frNb35z1H/zxx9/rPPPP1/p6elKS0vTGWecoU8//bTVtq+++qq+853vNMd0/vnnt2hbW1ur6667Tj179lSXLl3Ur18/zZs3T5L1gcRtt92mvn37yul0qlevXrrhhhua+x46xTcnJ0fLly/X448/LsMwNHPmTElHTvH9/PPPddlllykjI0NZWVm68MILVVpa2ny+vr5ec+bMaY735z//ucxjbfjdAbYnqNu2bVOvXr10/PHHa+rUqdq5c+dR29bU1KiysrLFA0DnSXEGN8MhNcj+AIDYUrKvWv/+b0WHHyX7qu0OPaLVfvZZ89+dIVo+5zzxpG9e/yhJ1rGcccYZOnjwoP75z39KklavXq1u3bpp1apVzW1Wr16tcePGNT/3er36/e9/r7/+9a/6+OOP1b17d82cOVMffvihXnzxRb333nsyTVPf//735ff7W/S755579MQTT+idd97Rzp07dfPNNzef//3vf68nn3xShYWFWrNmjSorK4+5/vKHP/yhPvnkE33wwQfNx/75z3/qX//6lwoKClrt89///ldnnnmmnE6n3nrrLRUXF+uHP/yh6upa/7C+urpac+bM0Ycffqg333xTCQkJuvjii9XQYBX4vP/++/Xiiy/q6aef1pYtW/Tkk08qJydHkrR8+XLNnz9fDz30kLZt26bnn39eJ598cqtf54MPPtDEiRN12WWXaffu3frTn/50RBu/369zzjlHaWlp+sc//qE1a9Y0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docGSdXV1Ro2bJgefPBBu0NBK1avXq1rr71W77//vt544w35/X5973vfU3V1td2hQVLv3r111113qbi4WB9++KHOPvtsXXjhhfr444/tDg2H+OCDD/TQQw9p6NChdoeCw3z729/W7t27mx/vvvuu3SGhUXl5ucaOHSuHw6FXXnlFmzdv1h//+EdlZmbaHRqAQ7DNTABGjx6tU089VX/+858lSQ0NDerTp4+uv/56/fKXv7Q5OhzKMAytWLFCF110kd2h4Cj27t2r7t27a/Xq1TrzzDPtDgetyMrK0t13360f/ehHdocCSVVVVTrllFP0l7/8Rb/97W81fPhw3XfffXaHBVkjqM8//7w2btxodyhoxS9/+UutWbNG//jHP+wOBcAxMILaQbW1tSouLtaECROajyUkJGjChAl67733bIwMiE4VFRWSrCQIkaW+vl5Lly5VdXW1Tj/9dLvDQaNrr71W5513XovfQ4gc27ZtU69evXT88cdr6tSp2rlzp90hodGLL76okSNH6tJLL1X37t01YsQIPfLII3aHBeAwJKgdtG/fPtXX1+u4445rcfy4447Tl19+aVNUQHRqaGjQTTfdpLFjx2rIkCF2h4NGH330kVJTU+V0OnXNNddoxYoVGjx4sN1hQdLSpUu1YcMGzZs3z+5Q0IrRo0erqKhIr776qhYsWKCSkhKdccYZOnjwoN2hQdJnn32mBQsWaMCAAXrttdc0e/Zs3XDDDVq0aJHdoQE4RJLdAQCIX9dee63+/e9/s0YrwgwaNEgbN25URUWFnn32Wc2YMUOrV68mSbXZ559/rhtvvFFvvPGGunTpYnc4aMW5557b/PehQ4dq9OjR6tevn55++mmmyEeAhoYGjRw5Ur/73e8kSSNGjNC///1vLVy4UDNmzLA5OgBNGEHtoG7duikxMVFfffVVi+NfffWVevToYVNUQPS57rrr9NJLL+ntt99W79697Q4Hh0hOTlb//v2Vl5enefPmadiwYfrTn/5kd1hxr7i4WHv27NEpp5yipKQkJSUlafXq1br//vuVlJSk+vp6u0PEYTIyMjRw4EBt377d7lAgqWfPnkd80HbSSScxDRuIMCSoHZScnKy8vDy9+eabzccaGhr05ptvskYLaAfTNHXddddpxYoVeuutt5Sbm2t3SGhDQ0ODampq7A4j7o0fP14fffSRNm7c2PwYOXKkpk6dqo0bNyoxMdHuEHGYqqoqffrpp+rZs6fdoUDS2LFjj9jWbOvWrerXr59NEQFoDVN8AzBnzhzNmDFDI0eO1KhRo3TfffepurpaBQUFdocGWTcEh35aXVJSoo0bNyorK0t9+/a1MTJI1rTep556Si+88ILS0tKa1257PB65XC6bo8PcuXN17rnnqm/fvjp48KCeeuoprVq1Sq+99prdocW9tLS0I9Zqp6SkqGvXrqzhjhA333yzLrjgAvXr109ffPGFbr31ViUmJmrKlCl2hwZJP/nJTzRmzBj97ne/02WXXab169fr4Ycf1sMPP2x3aAAOQYIagMmTJ2vv3r265ZZb9OWXX2r48OF69dVXjyicBHt8+OGHOuuss5qfz5kzR5I0Y8YMFRUV2RQVmixYsECSNG7cuBbHCwsLNXPmzM4PCC3s2bNH06dP1+7du+XxeDR06FC99tpr+u53v2t3aEDE27Vrl6ZMmaL9+/crOztb3/nOd/T+++8rOzvb7tAg6dRTT9WKFSs0d+5c3XHHHcrNzdV9992nqVOn2h0agEOwDyoAAAAAICKwBhUAAAAAEBFIUAEAAAAAEYEEFQAAAAAQEUhQAQAAAAARgQQVAAAAABARSFABAAAAABGBBBUAAAAAEBFIUAEAAAAAEYEEFQAAAAAQEUhQAQAAAAARgQQVAAAAABARSFABAEe1d+9e9ejRQ7/73e+aj61du1bJycl68803bYwMAADEIsM0TdPuIAAAkevll1/WRRddpLVr12rQoEEaPny4LrzwQt177712hwYAAGIMCSoAoE3XXnutVq5cqZEjR+qjjz7SBx98IKfTaXdYAAAgxpCgAgDa5PP5NGTIEH3++ecqLi7WySefbHdIAAAgBrEGFQDQpk8//VRffPGFGhoaVFpaanc4AAAgRjGCCgA4ptraWo0aNUrDhw/XoEGDdN999+mjjz5S9+7d7Q4NAADEGBJUAMAx/exnP9Ozzz6rTZs2KTU1Vfn5+fJ4PHrppZfsDg0AAMQYpvgCAI5q1apVuu+++/TEE08oPT1dCQkJeuKJJ/SPf/xDCxYssDs8AAAQYxhBBQAAAABEBEZQAQAAAAARgQQVAAAAABARSFABAAAAABGBBBUAAAAAEBFIUAEAAAAAEYEEFQAAAAAQEUhQAQAAAAARgQQVAAAAABARSFABAAAAABGBBBUAAAAAEBFIUAEAAAAAEeH/A4mFSfUtagLgAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(9, 6))\n",
    "\n",
    "for feature, label in zip(train_data, train_labels):\n",
    "    COLOR = 'C0' if label == 0 else 'C1'\n",
    "    plt.scatter(feature[0], feature[1],\n",
    "                marker='o', s=100, color=COLOR)\n",
    "\n",
    "for feature, label, pred in zip(test_data, test_labels, predictions):\n",
    "    COLOR = 'C0' if pred == 0 else 'C1'\n",
    "    plt.scatter(feature[0], feature[1],\n",
    "                marker='s', s=100, color=COLOR)\n",
    "    if label != pred:  # mark wrongly classified\n",
    "        plt.scatter(feature[0], feature[1], marker='o', s=500,\n",
    "                    linewidths=2.5, facecolor='none', edgecolor='C3')\n",
    "\n",
    "legend_elements = [\n",
    "    Line2D([0], [0], marker='o', c='w', mfc='C1', label='A', ms=10),\n",
    "    Line2D([0], [0], marker='o', c='w', mfc='C0', label='B', ms=10),\n",
    "    Line2D([0], [0], marker='s', c='w', mfc='C1', label='predict A',\n",
    "           ms=10),\n",
    "    Line2D([0], [0], marker='s', c='w', mfc='C0', label='predict B',\n",
    "           ms=10),\n",
    "    Line2D([0], [0], marker='o', c='w', mfc='none', mec='C3',\n",
    "           label='wrongly classified', mew=2, ms=15)\n",
    "]\n",
    "\n",
    "plt.legend(handles=legend_elements, bbox_to_anchor=(1, 1),\n",
    "           loc='upper left')\n",
    "\n",
    "plt.title('Training & Test Data')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "qiskit==1.1.0\n",
      "qiskit-aer==0.14.2\n",
      "qiskit-algorithms==0.3.0\n",
      "qiskit-ibm-runtime==0.25.0\n",
      "qiskit-machine-learning==0.7.2\n",
      "qiskit-nature==0.7.2\n",
      "qiskit-nature-pyscf==0.4.0\n",
      "qiskit-qasm3-import==0.5.0\n",
      "qiskit-transpiler-service==0.4.5\n"
     ]
    }
   ],
   "source": [
    "! pip freeze | grep qiskit"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
